home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok81 / m2 / defs / graphicsd.def < prev    next >
Text File  |  1993-11-04  |  23KB  |  1,128 lines

  1. DEFINITION MODULE GraphicsD; (*$ Implementation:=FALSE *)
  2. (* 10-Mar-1992/cn *)
  3.  
  4. FROM SYSTEM IMPORT ADDRESS,BITSET,BYTE,LONGSET,WORD,SHIFT,SHORTSET;
  5.  
  6. FROM ExecD IMPORT
  7.  Interrupt,Library,List,Message,MinList,Node,NodePtr,NodeType,
  8.  SignalSemaphore,SignalSemaphorePtr,TaskPtr,MsgPortPtr;
  9.  
  10. FROM Hardware IMPORT
  11.  BltnodePtr,BeamConFlags,BeamConFlagSet;
  12.  
  13. FROM UtilityD IMPORT
  14.  HookPtr,tagUser,TagItemPtr;
  15.  
  16. TYPE
  17. (*
  18.  Die Datentypen von Graphics referenzieren sich oft gegenseitig.
  19.  Aus diesem Grund werden alle Zeiger zuerst deklariert.
  20. *)
  21.  (*36*)AnalogSignalIntervalPtr=POINTER TO AnalogSignalInterval;
  22.  AnimCompPtr=POINTER TO AnimComp;
  23.  AnimObPtr=POINTER TO AnimOb;
  24.  AreaInfoPtr=POINTER TO AreaInfo;
  25.  BitMapPtr=POINTER TO BitMap;
  26.  (*36*)BitScaleArgsPtr=POINTER TO BitScaleArgs;
  27.  BobPtr=POINTER TO Bob;
  28.  ClipRectPtr=POINTER TO ClipRect;
  29.  CollTablePtr=POINTER TO CollTable;
  30.  (*36*)ColorFontColorsPtr=POINTER TO ColorFontColors;
  31.  ColorMapPtr=POINTER TO ColorMap;
  32.  (*36*)ColorTextFontPtr=POINTER TO ColorTextFont;
  33.  CopinitPtr=POINTER TO Copinit;
  34.  CopInsPtr=POINTER TO CopIns;
  35.  CopListPtr=POINTER TO CopList;
  36.  CprlistPtr=POINTER TO Cprlist;
  37.  DBufPacketPtr=POINTER TO DBufPacket;
  38.  (*36*)DimensionInfoPtr=POINTER TO DimensionInfo;
  39.  (*36*)DisplayInfoPtr=POINTER TO DisplayInfo;
  40.  (*36*)ExtendedNodePtr=POINTER TO ExtendedNode;
  41.  GelsInfoPtr=POINTER TO GelsInfo;
  42.  GfxBasePtr=POINTER TO GfxBase;
  43.  IsrvstrPtr=POINTER TO Isrvstr;
  44.  LayerPtr=POINTER TO Layer;
  45.  LayerInfoPtr=POINTER TO LayerInfo;
  46.  (*36*)MonitorInfoPtr = POINTER TO MonitorInfo;
  47.  (*36*)MonitorSpecPtr=POINTER TO MonitorSpec;
  48.  (*36*)NameInfoPtr=POINTER TO NameInfo;
  49.  (*36*)PointPtr=POINTER TO Point;
  50.  (*36*)QueryHeaderPtr=POINTER TO QueryHeader;
  51.  RasInfoPtr=POINTER TO RasInfo;
  52.  RastPortPtr=POINTER TO RastPort;
  53.  (*36*)Rect32Ptr=POINTER TO Rect32;
  54.  RectanglePtr=POINTER TO Rectangle;
  55.  RegionPtr=POINTER TO Region;
  56.  RegionRectanglePtr=POINTER TO RegionRectangle;
  57.  SimpleSpritePtr=POINTER TO SimpleSprite;
  58.  (*36*)SpecialMonitorPtr=POINTER TO SpecialMonitor;
  59.  TextAttrPtr=POINTER TO TextAttr;
  60.  (*36*)TextExtentPtr=POINTER TO TextExtent;
  61.  (*36*)TextFontExtensionPtr=POINTER TO TextFontExtension;
  62.  TextFontPtr=POINTER TO TextFont;
  63.  TmpRasPtr=POINTER TO TmpRas;
  64.  (*36*)TTextAttrPtr=POINTER TO TTextAttr;
  65.  UCopListPtr=POINTER TO UCopList;
  66.  (*36*)ViewExtraPtr=POINTER TO ViewExtra;
  67.  ViewPtr=POINTER TO View;
  68.  (*36*)ViewPortExtraPtr=POINTER TO ViewPortExtra;
  69.  ViewPortPtr=POINTER TO ViewPort;
  70.  VSpritePtr=POINTER TO VSprite;
  71.  
  72.  Rectangle=RECORD
  73.   minX,minY,maxX,maxY:INTEGER;
  74.  END;
  75.  
  76.  Rect32=RECORD
  77.   minX,minY,maxX,maxY:LONGINT
  78.  END;
  79.  
  80.  Point=RECORD
  81.   x,y:INTEGER;
  82.  END;
  83.  
  84.  BitMap=RECORD
  85.   bytesPerRow:CARDINAL;
  86.   rows:CARDINAL;
  87.   flags:SHORTCARD;
  88.   depth:SHORTCARD;
  89.   pad:CARDINAL;
  90.   planes:ARRAY [0..7] OF ADDRESS;
  91.  END;
  92.  
  93.  Layer=RECORD
  94.   front:LayerPtr;
  95.   back:LayerPtr;
  96.   clipRect:ClipRectPtr;
  97.   rp:RastPortPtr;
  98.   bounds:Rectangle;
  99.   reserved:ARRAY [0..3] OF BYTE;
  100.   priority:CARDINAL;
  101.   flags:CARDINAL;
  102.   superBitMap:BitMapPtr;
  103.   superClipRect:ClipRectPtr;
  104.   window:ADDRESS;
  105.   scrollX:INTEGER;
  106.   scrollY:INTEGER;
  107.   cr:ClipRectPtr;
  108.   cr2:ClipRectPtr;
  109.   crnew:ClipRectPtr;
  110.   superSaveClipRects:ClipRectPtr;
  111.   cliprects:ClipRectPtr;
  112.   layerInfo:LayerInfoPtr;
  113.   lock:SignalSemaphore;
  114.   backFill:HookPtr;
  115.   reserved1:LONGCARD;
  116.   clipRegion:RegionPtr;
  117.   saveClipRects:RegionPtr;
  118.   width,height:INTEGER;
  119.   reserved2:ARRAY [0..17] OF BYTE;
  120.   damageList:RegionPtr;
  121.  END;
  122.  
  123.  ClipRect=RECORD
  124.   next:ClipRectPtr;
  125.   prev:ClipRectPtr;
  126.   lobs:LayerPtr;
  127.   bitMap:BitMapPtr;
  128.   bounds:Rectangle;
  129.   p1:ClipRectPtr;
  130.   p2:ClipRectPtr;
  131.   reserved:LONGINT;
  132.   flags:LONGINT;
  133.  END;
  134.  
  135. CONST
  136.  needsNoConcealedRasters=01H;
  137.  needsNoLayerblitDamage=02H;
  138.  
  139.  isLessX=1;
  140.  isLessY=2;
  141.  isGrtrX=4;
  142.  isGrtrY=8;
  143.  
  144. CONST
  145.  borderHit=0;
  146.  topHit=1;
  147.  bottomHit=2;
  148.  leftHit=4;
  149.  rightHit=8;
  150.  
  151. CONST
  152.  move=0;
  153.  wait=1;
  154.  next=2;
  155.  sys=13;
  156.  sht=14;
  157.  lof=15;
  158.  
  159. TYPE
  160.  CopIns=RECORD
  161.   CASE opCode:CARDINAL OF
  162.   | move:
  163.    destAddr:INTEGER;
  164.    destData:INTEGER;
  165.   | wait:
  166.    vWaitPos:INTEGER;
  167.    hWaitPos:INTEGER;
  168.   | next:
  169.    nxtlist:CopListPtr;
  170.   END;
  171.  END;
  172.  
  173.  Cprlist=RECORD
  174.   next:CprlistPtr;
  175.   start:ADDRESS;
  176.   maxCount:INTEGER;
  177.  END;
  178.  
  179.  CopList=RECORD
  180.   next:CopListPtr;
  181.   copList:CopListPtr;
  182.   viewPort:ViewPortPtr;
  183.   copIns:CopInsPtr;
  184.   copPtr:CopInsPtr;
  185.   copLStart:ADDRESS;
  186.   copSStart:ADDRESS;
  187.   count:INTEGER;
  188.   maxCount:INTEGER;
  189.   dyOffset:INTEGER;
  190.   (*34*)cop2Start:ADDRESS;
  191.   (*34*)cop3Start:ADDRESS;
  192.   (*34*)cop4Start:ADDRESS;
  193.   (*34*)cop5Start:ADDRESS;
  194.  END;
  195.  
  196.  UCopList=RECORD
  197.   next:UCopListPtr;
  198.   firstCopList:CopListPtr;
  199.   copList:CopListPtr;
  200.  END;
  201.  
  202.  Copinit=RECORD
  203.   vsyncHBlank:ARRAY [0..1] OF CARDINAL;
  204.   diwstart:ARRAY [0..3] OF CARDINAL;
  205.   diagstrt:ARRAY [0..3] OF CARDINAL;
  206.   sprstrtup:ARRAY [0..(2*8*2)-1] OF CARDINAL;
  207.   wait14:ARRAY [0..1] OF CARDINAL;
  208.   normHBlank:ARRAY [0..1] OF CARDINAL;
  209.   genloc:ARRAY [0..3] OF CARDINAL;
  210.   jump:ARRAY [0..(2*2)-1] OF CARDINAL;
  211.   waitForever:ARRAY [0..1] OF CARDINAL;
  212.   sprstop:ARRAY [0..3] OF CARDINAL;
  213.  END;
  214.  
  215. CONST
  216.  m640=08000H;
  217.  plnCntMsk=07H;
  218.  plnCntShft=12;
  219.  pf2pri=40H;
  220.  colorOn=200H;
  221.  dblpf=400H;
  222.  holdnmodify=800H;
  223.  interlace=04H;
  224.  
  225.  fineScroll=0FH;
  226.  fineScrollShift=04H;
  227.  fineScrollMask=0FH;
  228.  horizPos=07FH;
  229.  vrtclPos=01FFH;
  230.  vrtclPosShift=07H;
  231.  dftchMask=0FFH;
  232.  vposrlof=08000H;
  233.  
  234. TYPE
  235.  ExtendedNode=RECORD
  236.   succ:NodePtr;
  237.   pred:NodePtr;
  238.   type:NodeType;
  239.   pri:SHORTINT;
  240.   name:ADDRESS;
  241.   subsystem:SHORTCARD;
  242.   subtype:SHORTCARD;
  243.   library:LONGINT;
  244.   init:PROCEDURE():LONGINT;
  245.  END;
  246.  
  247. CONST
  248.  ssGraphics=02H;
  249.  
  250.  viewExtraType=1;
  251.  viewportExtraType=2;
  252.  specialMonitorType=3;
  253.  monitorSpecType=4;
  254.  
  255. TYPE
  256.  LongProc=PROCEDURE():LONGINT;
  257.  
  258.  MonitorSpec=RECORD
  259.   node:ExtendedNode;
  260.   flags:BITSET;
  261.   ratioh:LONGINT;
  262.   ratiov:LONGINT;
  263.   totalRows:CARDINAL;
  264.   totalColorclocks:CARDINAL;
  265.   deniseMaxDisplayColumn:CARDINAL;
  266.   beamCon0:CARDINAL;
  267.   minRow:CARDINAL;
  268.   special:SpecialMonitorPtr;
  269.   openCount:CARDINAL;
  270.   transform:LongProc;
  271.   translate:LongProc;
  272.   scale: LongProc;
  273.   xoffset:CARDINAL;
  274.   yoffset:CARDINAL;
  275.   legalView:Rectangle;
  276.   maxoscan:LongProc;
  277.   videoscan:LongProc;
  278.   deniseMinDisplayColumn:CARDINAL;
  279.   displayCompatible:LONGCARD;
  280.   displayInfoDataBase:List;
  281.   displayInfoDataBaseSemaphore:SignalSemaphore;
  282.   reserved00:LONGCARD;
  283.   reserved01:LONGCARD;
  284.  END;
  285.  
  286. CONST
  287.  toMonitor=0;
  288.  fromMonitor=1;
  289.  
  290.  standardXoffset=9;
  291.  standardYoffset=0;
  292.  
  293.  requestNtsc=1;
  294.  requestPal=2;
  295.  requestSpecial=4;
  296.  requestA2024=8;
  297.  
  298.  defaultMonitorName="default.monitor";
  299.  ntscMonitorName="ntsc.monitor";
  300.  palMonitorName="pal.monitor";
  301.  
  302.  standardMonitorMask=requestNtsc+requestPal;
  303.  
  304.  standardNtscRows=262;
  305.  standardPalRows=312;
  306.  standardColorclocks=226;
  307.  standardDeniseMax=455;
  308.  standardDeniseMin=93;
  309.  standardNtscBeamcon=0000H;
  310.  standardPalBeamcon=displayPal;
  311.  
  312.  specialBeamcon=BeamConFlagSet{
  313.                  varVBlank,lolDis,varVSync,varBeam,cSBlank};
  314.  
  315.  minNtscRow=21;
  316.  minPalRow=29;
  317.  
  318.  standardViewX=81H;
  319.  standardViewY=2CH;
  320.  standardHbstrt=06H;
  321.  standardHsstrt=0BH;
  322.  standardHsstop=1CH;
  323.  standardHbstop=2CH;
  324.  standardVbstrt=0122H;
  325.  standardVsstrt=02A6H;
  326.  standardVsstop=03AAH;
  327.  standardVbstop=1066H;
  328.  
  329.  vgaColorclocks=standardColorclocks DIV 2;
  330.  vgaTotalRows=standardNtscRows*2;
  331.  vgaDeniseMin=59;
  332.  
  333.  minVgaRow=29;
  334.  
  335.  vgaHbstrt=08H;
  336.  vgaHsstrt=0EH;
  337.  vgaHsstop=1CH;
  338.  vgaHbstop=1EH;
  339.  vgaVbstrt=0000H;
  340.  vgaVsstrt=0153H;
  341.  vgaVsstop=0235H;
  342.  vgaVbstop=0CCDH;
  343.  
  344.  vgaMonitorName="vga.monitor";
  345.  
  346.  vga70Colorclocks=standardColorclocks DIV 2;
  347.  vga70TotalRows=449;
  348.  vga70DeniseMin=59;
  349.  minVga70Row=35;
  350.  vga70Hbstrt=08H;
  351.  vga70Hsstrt=0EH;
  352.  vga70Hsstop=1CH;
  353.  vga70Hbstop=1EH;
  354.  vga70Vbstrt=0000H;
  355.  vga70Vsstrt=02A6H;
  356.  vga70Vsstop=0388H;
  357.  vga70Vbstop=0F73H;
  358.  
  359.  vga70Beamcon=specialBeamcon/BeamConFlagSet{vSyncTrue};
  360.  
  361.  vga70MonitorName="vga70.monitor";
  362.  
  363.  broadcastHbstrt=01H;
  364.  broadcastHsstrt=06H;
  365.  broadcastHsstop=17H;
  366.  broadcastHbstop=27H;
  367.  broadcastVbstrt=0000H;
  368.  broadcastVsstrt=02A6H;
  369.  broadcastVsstop=054CH;
  370.  broadcastVbstop=1C40H;
  371.  broadcastBeamcon=BeamConFlagSet{lolDis,cSBlank};
  372.  
  373.  ratioFixedpart=4;
  374.  ratioUnity=SHIFT(LONGCARD(1),ratioFixedpart);
  375.  
  376. TYPE
  377.  AnalogSignalInterval=RECORD
  378.   strt:CARDINAL;
  379.   stop:CARDINAL;
  380.  END;
  381.  
  382.  SpecialMonitor=RECORD
  383.   node:ExtendedNode;
  384.   flags:BITSET;
  385.   doMonitor:LongProc;
  386.   reserved1:LongProc;
  387.   reserved2:LongProc;
  388.   reserved3:LongProc;
  389.   hblank:AnalogSignalInterval;
  390.   vblank:AnalogSignalInterval;
  391.   hsync:AnalogSignalInterval;
  392.   vsync:AnalogSignalInterval;
  393.  END;
  394.  
  395. TYPE
  396.  DisplayInfoHandle=ADDRESS;
  397.  
  398. CONST
  399.  dtagDisp=80000000H;
  400.  dtagDims=80001000H;
  401.  dtagMntr=80002000H;
  402.  dtagName=80003000H;
  403.  
  404. TYPE
  405.  QueryHeader=RECORD
  406.   structID:LONGCARD;
  407.   displayID:LONGCARD;
  408.   skipID:LONGCARD;
  409.   length:LONGCARD;
  410.  END;
  411.  
  412. TYPE
  413.  PropertyFlags=(
  414.   isLace,isDualpf,isPf2pri,isHam,isEcs,isPal,isSprites,isGenlock,isWb,
  415.   isDraggable,isPanelled,isBeamsync,isExtrahalfbrite,is13,is14,is15,is16
  416.  );
  417.  PropertyFlagSet=SET OF PropertyFlags;
  418.  
  419.  AvailabilityFlags=(
  420.   availNochips,availNomonitor,availNotwithgenlock,avf3,
  421.   avf4,avf5,avf6,avf7,avf8
  422.  );
  423.  AvailabilityFlagSet=SET OF AvailabilityFlags;
  424.  
  425.  DisplayInfo=RECORD
  426.   header:QueryHeader;
  427.   notAvailable:AvailabilityFlagSet;
  428.   propertyFlags:PropertyFlagSet;
  429.   resolution:Point;
  430.   pixelSpeed:CARDINAL;
  431.   numStdSprites:CARDINAL;
  432.   paletteRange:CARDINAL;
  433.   spriteResolution:Point;
  434.   pad:ARRAY [0..3] OF SHORTCARD;
  435.   reserved2:ARRAY [0..1] OF LONGCARD;
  436.  END;
  437.  
  438. CONST
  439.  diAvailNochip=AvailabilityFlagSet{availNochips};
  440.  diAvailNomonitor=AvailabilityFlagSet{availNomonitor};
  441.  diAvailNotwithgenlock=AvailabilityFlagSet{availNotwithgenlock};
  442.  
  443. TYPE
  444.  DimensionInfo=RECORD
  445.   header:QueryHeader;
  446.   maxDepth:CARDINAL;
  447.   minRasterWidth:CARDINAL;
  448.   minRasterHeight:CARDINAL;
  449.   maxRasterWidth:CARDINAL;
  450.   maxRasterHeight:CARDINAL;
  451.   nominal:Rectangle;
  452.   maxOScan:Rectangle;
  453.   videoOScan:Rectangle;
  454.   txtOScan:Rectangle;
  455.   stdOScan:Rectangle;
  456.   pad:ARRAY [0..13] OF SHORTCARD;
  457.   reserved:ARRAY [0..1] OF LONGCARD;
  458.  END;
  459.  
  460.  MonitorInfo=RECORD
  461.   header:QueryHeader;
  462.   mspc:MonitorSpecPtr;
  463.   viewPosition:Point;
  464.   viewResolution:Point;
  465.   viewPositionRange:Rectangle;
  466.   totalRows:CARDINAL;
  467.   totalColorClocks:CARDINAL;
  468.   minRow:CARDINAL;
  469.   compatibility:INTEGER;
  470.   pad:ARRAY [0..35] OF SHORTCARD;
  471.   DefaultViewPosition:Point;
  472.   PreferredModeID:LONGCARD;
  473.   reserved:ARRAY [0..1] OF LONGCARD;
  474.  END;
  475.  
  476. CONST
  477.  mcompatMixed=0;
  478.  mcompatSelf=1;
  479.  mcompatNobody=-1;
  480.  
  481.  displayNameLen=32;
  482.  
  483. TYPE
  484.  NameInfo=RECORD
  485.   header:QueryHeader;
  486.   name:ARRAY [0..displayNameLen-1] OF CHAR;
  487.   reserved:ARRAY [0..1] OF LONGCARD;
  488.  END;
  489.  
  490. CONST
  491.  invalidID=-1;
  492.  
  493.  monitorIDmask=0FFFF1000H;
  494.  
  495.  defaultMonitorID=00000000H;
  496.  ntscMonitorID=00011000H;
  497.  palMonitorID=00021000H;
  498.  
  499.  loresKey=00000000H;
  500.  hiresKey=00008000H;
  501.  superKey=00008020H;
  502.  hamKey=00000800H;
  503.  loreslaceKey=00000004H;
  504.  hireslaceKey=00008004H;
  505.  superlaceKey=00008024H;
  506.  hamlaceKey=00000804H;
  507.  loresdpfKey=00000400H;
  508.  hiresdpfKey=00008400H;
  509.  superdpfKey=00008420H;
  510.  loreslacedpfKey=00000404H;
  511.  hireslacedpfKey=00008404H;
  512.  superlacedpfKey=00008424H;
  513.  loresdpf2Key=00000440H;
  514.  hiresdpf2Key=00008440H;
  515.  superdpf2Key=00008460H;
  516.  loreslacedpf2Key=00000444H;
  517.  hireslacedpf2Key=00008444H;
  518.  superlacedpf2Key=00008464H;
  519.  extrahalfbriteKey=00000080H;
  520.  extrahalfbritelaceKey=00000084H;
  521.  
  522.  vgaMonitorID=00031000H;
  523.  
  524.  vgaextraloresKey=00031004H;
  525.  vgaloresKey=00039004H;
  526.  vgaproductKey=00039024H;
  527.  vgahamKey=00031804H;
  528.  vgaextraloreslaceKey=00031005H;
  529.  vgaloreslaceKey=00039005H;
  530.  vgaproductlaceKey=00039025H;
  531.  vgahamlaceKey=00031805H;
  532.  vgaextraloresdpfKey=00031404H;
  533.  vgaloresdpfKey=00039404H;
  534.  vgaproductdpfKey=00039424H;
  535.  vgaextraloreslacedpfKey=00031405H;
  536.  vgaloreslacedpfKey=00039405H;
  537.  vgaproductlacedpfKey=00039425H;
  538.  vgaextraloresdpf2Key=00031444H;
  539.  vgaloresdpf2Key=00039444H;
  540.  vgaproductdpf2Key=00039464H;
  541.  vgaextraloreslacedpf2Key=00031445H;
  542.  vgaloreslacedpf2Key=00039445H;
  543.  vgaproductlacedpf2Key=00039465H;
  544.  vgaextrahalfbriteKey=00031084H;
  545.  vgaextrahalfbritelaceKey=00031085H;
  546.  
  547.  a2024MonitorID=00041000H;
  548.  
  549.  a2024tenhertzKey=00041000H;
  550.  a2024fifteenhertzKey=00049000H;
  551.  
  552.  protoMonitorID=00051000H;
  553.  
  554. CONST
  555.  ringtrigger=01H;
  556.  anfracsize=06H;
  557.  animhalf=020H;
  558.  
  559.  b2Norm=0;
  560.  b2Swap=1;
  561.  b2Bobber=2;
  562.  
  563. TYPE
  564.  VSpriteFlags=(
  565.   vsprite,saveBack,overlay,mustDraw,vf4,vf5,vf6,vf7,
  566.   backSaved,bobUpdate,gelGone,vsOverflow,vf12,vf13,vf14,vf15
  567.  );
  568.  VSpriteFlagSet=SET OF VSpriteFlags;
  569.  VSprite=RECORD
  570.   nextVSprite:VSpritePtr;
  571.   prevVSprite:VSpritePtr;
  572.   drawPath:VSpritePtr;
  573.   clearPath:VSpritePtr;
  574.   oldY:INTEGER;
  575.   oldX:INTEGER;
  576.   flags:VSpriteFlagSet;
  577.   y:INTEGER;
  578.   x:INTEGER;
  579.   height:INTEGER;
  580.   width:INTEGER;
  581.   depth:INTEGER;
  582.   meMask:BITSET;
  583.   hitMask:BITSET;
  584.   imageData:ADDRESS;
  585.   borderLine:ADDRESS;
  586.   collMask:ADDRESS;
  587.   sprColors:ADDRESS;
  588.   vsBob:BobPtr;
  589.   planePick:SHORTCARD;
  590.   planeOnOff:SHORTCARD;
  591.  END;
  592.  
  593.  BobFlags=(
  594.   saveBob,bobIsComp,bf2,bf3,bf4,bf5,bf6,bf7,
  595.   bWaiting,bDrawn,bobsAway,bobNix,savePreserve,outStep,bf14,bf15
  596.  );
  597.  BobFlagSet=SET OF BobFlags;
  598.  
  599.  Bob=RECORD
  600.   flags:BobFlagSet;
  601.   saveBuffer:ADDRESS;
  602.   imageShadow:ADDRESS;
  603.   before:BobPtr;
  604.   after:BobPtr;
  605.   bobVSprite:VSpritePtr;
  606.   bobComp:AnimCompPtr;
  607.   dBuffer:DBufPacketPtr;
  608.  END;
  609.  
  610.  AnimComp=RECORD
  611.   flags:INTEGER;
  612.   timer:INTEGER;
  613.   timeSet:INTEGER;
  614.   nextComp:AnimCompPtr;
  615.   prevComp:AnimCompPtr;
  616.   nextSeq:AnimCompPtr;
  617.   prevSeq:AnimCompPtr;
  618.   animCRoutine:ADDRESS;
  619.   yTrans:INTEGER;
  620.   xTrans:INTEGER;
  621.   headOb:AnimObPtr;
  622.   animBob:BobPtr;
  623.  END;
  624.  
  625.  AnimOb=RECORD
  626.   nextOb:AnimObPtr;
  627.   prevOb:AnimObPtr;
  628.   clock:LONGINT;
  629.   anOldY:INTEGER;
  630.   anOldX:INTEGER;
  631.   anY:INTEGER;
  632.   anX:INTEGER;
  633.   yVel:INTEGER;
  634.   xVel:INTEGER;
  635.   yAccel:INTEGER;
  636.   xAccel:INTEGER;
  637.   ringYTrans:INTEGER;
  638.   ringXTrans:INTEGER;
  639.   animORoutine:ADDRESS;
  640.   headComp:AnimCompPtr;
  641.  END;
  642.  
  643.  DBufPacket=RECORD
  644.   bufY:INTEGER;
  645.   bufX:INTEGER;
  646.   bufPath:VSpritePtr;
  647.   bufBuffer:ADDRESS;
  648.  END;
  649.  
  650.  CollTable=RECORD
  651.   collPtrs:ARRAY [0..15] OF ADDRESS
  652.  END;
  653.  
  654.  DisplayFlags=(
  655.    ntsc,genloc,pal,todaSafe,df4,df5,df6,df7,
  656.    df8,df9,df10,df11,df12,df13,df14,df15
  657.  );
  658.  DisplayFlagSet=SET OF DisplayFlags;
  659.  
  660.  (*36*)ChipRevs=(hrAgnus,hrDenise,cr2,cr3,cr4,cr5,cr6,cr7);
  661.  (*36*)ChipRevSet=SET OF ChipRevs;
  662.  
  663. CONST
  664.  bigBlits=hrAgnus;
  665.  
  666. TYPE
  667.  GfxBase=RECORD
  668.   libNode:Library;
  669.   actiView:ViewPtr;
  670.   copinit:CopinitPtr;
  671.   cia:ADDRESS;
  672.   blitter:ADDRESS;
  673.   loFlist:ADDRESS;
  674.   shFlist:ADDRESS;
  675.   blthd:BltnodePtr;
  676.   blttl:BltnodePtr;
  677.   bsblthd:BltnodePtr;
  678.   bsblttl:BltnodePtr;
  679.   vbsrv:Interrupt;
  680.   timsrv:Interrupt;
  681.   bltsrv:Interrupt;
  682.   textFonts:List;
  683.   defaultFont:TextFontPtr;
  684.   modes:BITSET;
  685.   vBlank:SHORTCARD;
  686.   debug:BYTE;
  687.   beamSync:INTEGER;
  688.   bplcon0:BITSET;
  689.   spriteReserved:SHORTCARD;
  690.   bytereserved:SHORTCARD;
  691.   flags:BITSET;
  692.   blitLock:INTEGER;
  693.   blitNest:INTEGER;
  694.   blitWaitQ:List;
  695.   blitOwner:TaskPtr;
  696.   waitQ:List;
  697.   displayFlags:DisplayFlagSet;
  698.   simpleSprites:ADDRESS;
  699.   maxDisplayRow:CARDINAL;
  700.   maxDisplayColumn:CARDINAL;
  701.   normalDisplayRows:CARDINAL;
  702.   normalDisplayColumns:CARDINAL;
  703.   normalDPMX:CARDINAL;
  704.   normalDPMY:CARDINAL;
  705.   lastChanceMemory:SignalSemaphorePtr;
  706.   lcMptr:ADDRESS;
  707.   microsPerLine:CARDINAL;
  708.   minDisplayColumn:CARDINAL;
  709.   (*36*)chipRevBits0:ChipRevSet;
  710.   (*36*)reservedPad:SHORTCARD;
  711.   (*36*)reserved:ARRAY [0..3] OF SHORTCARD;
  712.   (*36*)monitorId:CARDINAL;
  713.   (*36*)hedley:ARRAY [0..7] OF ADDRESS;
  714.   (*36*)hedleySprites:ARRAY[0..7]OF ADDRESS;
  715.   (*36*)hedleySprites1:ARRAY[0..7]OF ADDRESS;
  716.   (*36*)hedleyCount:INTEGER;
  717.   (*36*)hedleyFlags:BITSET;
  718.   (*36*)hedleyTmp:INTEGER;
  719.   (*36*)hashTable:ADDRESS;
  720.   (*36*)currentTotRows:CARDINAL;
  721.   (*36*)currentTotCclks:CARDINAL;
  722.   (*36*)hedleyHint:SHORTCARD;
  723.   (*36*)hedleyHint2:SHORTCARD;
  724.   (*36*)nreserved:ARRAY [0..3] OF LONGCARD;
  725.   (*36*)a2024SyncRaster:ADDRESS;
  726.   (*36*)controlDeltaPal:INTEGER;
  727.   (*36*)controlDeltaNtsc:INTEGER;
  728.   (*36*)currentMonitor:MonitorSpecPtr;
  729.   (*36*)monitorList:List;
  730.   (*36*)defaultMonitor:MonitorSpecPtr;
  731.   (*36*)monitorListSemaphore:SignalSemaphorePtr;
  732.   (*36*)displayInfoDataBase:ADDRESS;
  733.   (*36*)lapad:INTEGER;
  734.   (*36*)actiViewCprSemaphore:SignalSemaphorePtr;
  735.   (*36*)utilityBase:ADDRESS;
  736.   (*36*)execBase:ADDRESS;
  737.  END;
  738.  
  739. CONST
  740.  blitMsgFault=4;
  741.  
  742. TYPE
  743.  Isrvstr=RECORD
  744.   node:Node;
  745.   iptr:IsrvstrPtr;
  746.   code:ADDRESS;
  747.   ccode:ADDRESS;
  748.   carg:LONGINT;
  749.  END;
  750.  
  751.  LayerFlags=(
  752.   layerSimple,layerSmart,layerSuper,lf3,layerUpdating,lf5,layerBackdrop,
  753.   layerRefresh,layerClipRectsLost
  754.  );
  755.  LayerFlagSet=SET OF LayerFlags;
  756.  
  757.  LayerInfo=RECORD
  758.   layer:LayerPtr;
  759.   lp:LayerPtr;
  760.   obs:ClipRectPtr;
  761.   freeClipRects:MinList;
  762.   lock:SignalSemaphore;
  763.   head:List;
  764.   longreserved:LONGINT;
  765.   flags:LayerFlagSet;
  766.   count:SHORTINT;
  767.   lockLayersCount:SHORTINT;
  768.   layerInfoExtraSize:CARDINAL;
  769.   blitbuff:ADDRESS;
  770.   layerInfoExtra:ADDRESS;
  771.  END;
  772.  
  773. CONST
  774.  lmnRegion=-1;
  775.  newLayerInfoCalled=01H;
  776.  alertLayersNoMem=083010000H;
  777.  
  778. TYPE
  779.  AreaInfo=RECORD
  780.   vctrTbl:ADDRESS;
  781.   vctrPtr:ADDRESS;
  782.   flagTbl:ADDRESS;
  783.   flagPtr:ADDRESS;
  784.   count:INTEGER;
  785.   maxCount:INTEGER;
  786.   firstX:INTEGER;
  787.   firstY:INTEGER;
  788.  END;
  789.  
  790.  TmpRas=RECORD
  791.   rasPtr:ADDRESS;
  792.   size:LONGINT;
  793.  END;
  794.  
  795.  GelsInfo=RECORD
  796.   sprRsrvd:SHORTINT;
  797.   flags:SHORTCARD;
  798.   gelHead:VSpritePtr;
  799.   gelTail:VSpritePtr;
  800.   nextLine:ADDRESS;
  801.   lastColor:ADDRESS;
  802.   collHandler:CollTablePtr;
  803.   leftmost:INTEGER;
  804.   rightmost:INTEGER;
  805.   topmost:INTEGER;
  806.   bottommost:INTEGER;
  807.   firstBlissObj:ADDRESS;
  808.   lastBlissObj:ADDRESS;
  809.  END;
  810.  
  811.  DrawModes=(dm0,complement,inversvid);
  812.  DrawModeSet=SET OF DrawModes;
  813.  
  814.  FontStyles=(
  815.   underlined,bold,italic,extended,fs4,fs5,colorFont,tagged
  816.  );
  817.  FontStyleSet=SET OF FontStyles;
  818.  
  819.  FontFlags=(
  820.   romFont,diskFont,revPath,tallDot,wideDot,proportional,designed,removed
  821.  );
  822.  FontFlagSet=SET OF FontFlags;
  823.  
  824.  RastPortFlags=(
  825.   firstDot,oneDot,dBuffer,areaOutline,rpf4,noCrossFill,rpf6,rpf7,rpf8
  826.  );
  827.  RastPortFlagSet=SET OF RastPortFlags;
  828.  
  829.  RastPort=RECORD
  830.   layer:LayerPtr;
  831.   bitMap:BitMapPtr;
  832.   areaPtrn:ADDRESS;
  833.   tmpRas:TmpRasPtr;
  834.   areaInfo:AreaInfoPtr;
  835.   gelsInfo:GelsInfoPtr;
  836.   mask:SHORTCARD;
  837.   fgPen:SHORTCARD;
  838.   bgPen:SHORTCARD;
  839.   aOlPen:SHORTCARD;
  840.   drawMode:DrawModeSet;
  841.   areaPtSz:SHORTCARD;
  842.   linPatCnt:SHORTCARD;
  843.   dummy:BYTE;
  844.   flags:RastPortFlagSet;
  845.   linePtrn:CARDINAL;
  846.   x:INTEGER;
  847.   y:INTEGER;
  848.   minterms:ARRAY [0..7] OF SHORTCARD;
  849.   penWidth:INTEGER;
  850.   penHeight:INTEGER;
  851.   font:TextFontPtr;
  852.   algoStyle:FontStyleSet;
  853.   txFlags:FontFlagSet;
  854.   txHeight:CARDINAL;
  855.   txWidth:CARDINAL;
  856.   txBaseline:CARDINAL;
  857.   txSpacing:INTEGER;
  858.   user:ADDRESS;
  859.   longreserved:ARRAY [0..1] OF LONGINT;
  860.   wordreserved:ARRAY [0..6] OF WORD;
  861.   reserved:ARRAY [0..7] OF BYTE;
  862.  END;
  863.  
  864. CONST
  865.  jam1=DrawModeSet{};
  866.  jam2=DrawModeSet{dm0};
  867.  
  868.  spriteAttached=080H;
  869.  normalFont=FontStyleSet{};
  870.  
  871. TYPE
  872.  RegionRectangle=RECORD
  873.   next:RegionRectanglePtr;
  874.   prev:RegionRectanglePtr;
  875.   bounds:Rectangle;
  876.  END;
  877.  
  878.  Region=RECORD
  879.   bounds:Rectangle;
  880.   regionRectangle:RegionRectanglePtr;
  881.  END;
  882.  
  883. TYPE
  884.  BitScaleArgs=RECORD
  885.   srcX:CARDINAL;
  886.   srcY:CARDINAL;
  887.   srcWidth:CARDINAL;
  888.   srcHeight:CARDINAL;
  889.   srcXFactor:CARDINAL;
  890.   srcYFactor:CARDINAL;
  891.   destX:CARDINAL;
  892.   destY:CARDINAL;
  893.   destWidth:CARDINAL;
  894.   destHeight:CARDINAL;
  895.   xDestFactor:CARDINAL;
  896.   yDestFactor:CARDINAL;
  897.   srcBitMap:BitMapPtr;
  898.   destBitMap:BitMapPtr;
  899.   flags:LONGCARD;
  900.   xDDA:CARDINAL;
  901.   yDDA:CARDINAL;
  902.   reserved1:LONGINT;
  903.   reserved2:LONGINT;
  904.  END;
  905.  
  906.  SimpleSprite=RECORD
  907.   posctldata:ADDRESS;
  908.   height:CARDINAL;
  909.   x:CARDINAL;
  910.   y:CARDINAL;
  911.   num:INTEGER;
  912.  END;
  913.  
  914.  TextAttr=RECORD
  915.   name:ADDRESS;
  916.   ySize:CARDINAL;
  917.   style:FontStyleSet;
  918.   flags:FontFlagSet;
  919.  END;
  920.  
  921.  TTextAttr=RECORD
  922.   name:ADDRESS;
  923.   ySize:CARDINAL;
  924.   style:FontStyleSet;
  925.   flags:FontFlagSet;
  926.   tags:TagItemPtr;
  927.  END;
  928.  
  929. CONST
  930.  taDeviceDPI=tagUser+1;
  931.  maxFontMatchWeight=32767;
  932.  
  933. TYPE
  934.  TextFont=RECORD
  935.   message:Message;
  936.   ySize:CARDINAL;
  937.   style:FontStyleSet;
  938.   flags:FontFlagSet;
  939.   xSize:CARDINAL;
  940.   baseline:CARDINAL;
  941.   boldSmear:CARDINAL;
  942.   accessors:CARDINAL;
  943.   loChar:CHAR;
  944.   hiChar:CHAR;
  945.   charData:ADDRESS;
  946.   modulo:CARDINAL;
  947.   charLoc:ADDRESS;
  948.   charSpace:ADDRESS;
  949.   charKern:ADDRESS;
  950.  END;
  951.  
  952. TYPE
  953.  TextFontExt0Flags=(noRemFont);
  954.  TextFontExt0FlagSet=SET OF TextFontExt0Flags;
  955.  
  956.  TextFontExtension=RECORD
  957.   matchWord:CARDINAL;
  958.   flags0:TextFontExt0FlagSet;
  959.   flags1:SHORTSET;
  960.   backPtr:TextFontPtr;
  961.   origReplyPort:MsgPortPtr;
  962.   tags:TagItemPtr;
  963.   oFontPatchS:ADDRESS;
  964.   oFontPatchK:ADDRESS;
  965.  END;
  966.  
  967. TYPE
  968.  ColorFontColors=RECORD
  969.   reserved:CARDINAL;
  970.   count:CARDINAL;
  971.   colorTable:POINTER TO ARRAY [0..1000] OF CARDINAL;
  972.  END;
  973.  
  974.  ColorTextFontFlags=(
  975.   colorfont,greyfont,antialias,ctf3,ctf4,ctf5,ctf6,ctf7,
  976.   ctf8,ctf9,ctf10,ctf11,ctf12,ctf13,ctf14,ctf15
  977.  );
  978.  ColorTextFontFlagSet=SET OF ColorTextFontFlags;
  979.  
  980. CONST
  981.  mapColor=colorFont;
  982.  colorMask=ColorTextFontFlagSet{colorfont..ctf3};
  983.  
  984. TYPE
  985.  ColorTextFont=RECORD
  986.   tf:TextFont;
  987.   flags:CARDINAL;
  988.   depth:SHORTCARD;
  989.   fgColor:SHORTCARD;
  990.   low:SHORTCARD;
  991.   high:SHORTCARD;
  992.   planePick:SHORTCARD;
  993.   planeOnOff:SHORTCARD;
  994.   colorFontColors:ColorFontColorsPtr;
  995.   charData:ARRAY[0..7] OF ADDRESS;
  996.  END;
  997.  
  998.  TextExtent=RECORD
  999.   width:CARDINAL;
  1000.   height:CARDINAL;
  1001.   extent:Rectangle;
  1002.  END;
  1003.  
  1004. CONST
  1005.  vtagEndCm=00000000H;
  1006.  
  1007. TYPE
  1008.  VTags=(
  1009.   vtagChromakeyClr:=tagUser,
  1010.   vtagChromakeySet,
  1011.   vtagBitplanekeyClr,
  1012.   vtagBitplanekeySet,
  1013.   vtagBorderblankClr,
  1014.   vtagBorderblankSet,
  1015.   vtagBordernotransClr,
  1016.   vtagBordernotransSet,
  1017.   vtagChromaPenClr,
  1018.   vtagChromaPenSet,
  1019.   vtagChromaPlaneSet,
  1020.   vtagAttachCmSet,
  1021.   vtagNextbufCm,
  1022.   vtagBatchCmClr,
  1023.   vtagBatchCmSet,
  1024.   vtagNormalDispGet,
  1025.   vtagNormalDispSet,
  1026.   vtagCoerceDispGet,
  1027.   vtagCoerceDispSet,
  1028.   vtagViewportextraGet,
  1029.   vtagViewportextraSet,
  1030.   vtagChromakeyGet,
  1031.   vtagBitplanekeyGet,
  1032.   vtagBorderblankGet,
  1033.   vtagBordernotransGet,
  1034.   vtagChromaPenGet,
  1035.   vtagChromaPlaneGet,
  1036.   vtagAttachCmGet,
  1037.   vtagBatchCmGet,
  1038.   vtagBatchItemsGet,
  1039.   vtagBatchItemsSet,
  1040.   vtagBatchItemsAdd,
  1041.   vtagVpmodeidGet,
  1042.   vtagVpmodeidSet,
  1043.   vtagVpmodeidClr,
  1044.   vtagUserclipGet,
  1045.   vtagUserclipSet,
  1046.   vtagUserclipClr
  1047.  );
  1048.  
  1049.  ViewModes=(
  1050.   vm0,genlocVideo,lace,vm3,vm4,superHires,pfba,extraHalfbrite,
  1051.   genlocAudio,vm9,dualpf,ham,extendedMode,vpHide,sprites,hires
  1052.  );
  1053.  ViewModeSet=SET OF ViewModes;
  1054.  
  1055.  ViewPort=RECORD
  1056.   next:ViewPortPtr;
  1057.   colorMap:ColorMapPtr;
  1058.   dspIns:CopListPtr;
  1059.   sprIns:CopListPtr;
  1060.   clrIns:CopListPtr;
  1061.   uCopIns:UCopListPtr;
  1062.   dWidth:INTEGER;
  1063.   dHeight:INTEGER;
  1064.   dxOffset:INTEGER;
  1065.   dyOffset:INTEGER;
  1066.   modes:ViewModeSet;
  1067.   spritePriorities:SHORTCARD;
  1068.   extendedModes:SHORTSET;
  1069.   rasInfo:RasInfoPtr;
  1070.  END;
  1071.  
  1072.  View=RECORD
  1073.   viewPort:ViewPortPtr;
  1074.   lofCprList:CprlistPtr;
  1075.   shfCprList:CprlistPtr;
  1076.   dyOffset:INTEGER;
  1077.   dxOffset:INTEGER;
  1078.   modes:ViewModeSet;
  1079.  END;
  1080.  
  1081.  ViewExtra=RECORD
  1082.   n:ExtendedNode;
  1083.   view:ViewPtr;
  1084.   monitor:MonitorSpecPtr;
  1085.  END;
  1086.  
  1087.  ViewPortExtra=RECORD
  1088.   n:ExtendedNode;
  1089.   viewPort:ViewPortPtr;
  1090.   displayClip:Rectangle;
  1091.  END;
  1092.  
  1093.  RasInfo=RECORD
  1094.   next:RasInfoPtr;
  1095.   bitMap:BitMapPtr;
  1096.   rxOffset:INTEGER;
  1097.   ryOffset:INTEGER;
  1098.  END;
  1099.  
  1100.  
  1101. TYPE
  1102.  ColorMapType=(colorMapTypeV33,colorMapTypeV36);
  1103.  
  1104.  ColorMapFlags=(
  1105.   colormapTransparency,colorPlaneTransparency,borderBlanking,
  1106.   borderNoTransparency,videoControlBatch,userCopperClip,cm6,cm7
  1107.  );
  1108.  ColorMapFlagSet=SET OF ColorMapFlags;
  1109.  
  1110.  ColorMap=RECORD
  1111.   flags:ColorMapFlagSet;
  1112.   type:ColorMapType;
  1113.   count:CARDINAL;
  1114.   colorTable:ADDRESS;
  1115.   vpe:ViewPortExtraPtr;
  1116.   transparencyBits:ADDRESS;
  1117.   transparencyPlane:SHORTCARD;
  1118.   reserved1:SHORTCARD;
  1119.   reserved2:CARDINAL;
  1120.   vp:ViewPortPtr;
  1121.   normalDisplayInfo:ADDRESS;
  1122.   coerceDisplayInfo:ADDRESS;
  1123.   batchItems:TagItemPtr;
  1124.   vpModeID:LONGCARD;
  1125.  END;
  1126.  
  1127. END GraphicsD.noimp
  1128.